水一把 CF,感觉全暴力而且代码量略少。
G 题不会..打扰了..
A. Elections
公式解即可。
1 |
|
B. Lost Array
KMP 的 next 函数求出所有循环节。
1 |
|
C. Smallest Word
题意
给定一个只有字符 a,b 的串,问按顺序 reverse 哪几个前缀可以使其字典序最小。
分析
转几次就会发现所有的 a 和所有的 b 是可以转到一起的,故先转到一起,最后转到 a 在前 b 在后即可。
1 |
|
D. Mysterious Crime
题意
给定10个排列,问它们的相同子串的个数。
分析
由于是排列,故每个数字唯一双射一个位置。
可直接按第一个串的子串找,相当于把第一个串分成好多段,每一段都是一个相同子串,由此计数。
具体分法,即某一段是否在某个位置结束,只用看第一段这个位置和其他串的对应位置是否映射同一个数字。
1 |
|
D - Crossing
题意
给定 n 个 (x,y) ,两两匹配的贡献是\(min(a_x+b_y,a_y+b_x)\)
然后除掉给定的m对匹配后,问你剩余的两两匹配之和。
分析
按 \(a_x+b_y<a_y+b_x\) 即 \(a_x-a_y<b_x-b_y\) 排序后直接算即可。
1 |
|
F. Make It One
题意
从 n(3e5) 个给定的数字中选一组 gcd 为 1 的数,最少选几个
分析
根据唯一分解定理,每选择一个数字至少消去一种素因子,而前 7 个素因子之积已超过 3e5,故至多选7个。
\(dp[i][j]\) 表示 i 的倍数中选出 j 个,且 gcd 为 i 的方案数 :
$$dp[i][j] = \binom{cnt_i}{j}-\sum_{k=2}^{\infty}dp[i*k][j]$$
1 |
|